﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using WebSite.DAL;
using WebSite.Domain;


namespace WebSite.ResultadoDiagnostico
{
    public partial class ResultadoDiagnostico : System.Web.UI.Page
    {      

        protected void Page_Load(object sender, EventArgs e)
        {
            string casoPacienteParam = Request.Params.Get("CP");
          //  Response.Write(casoPacienteParam);

            int casoPaciente = Convert.ToInt32(casoPacienteParam);

            Response.Cookies.Add(new HttpCookie("casoPaciente",casoPaciente.ToString()));

            if (!IsPostBack)
            {
                if (casoPacienteParam != null)
                {
                    DiagnosisDataControl ddc = new DiagnosisDataControl();
                    int idDiagnosis = Convert.ToInt32(ddc.GenerateDiagnosis(casoPaciente));

                    Response.Cookies.Add(new HttpCookie("idDiagnosis", idDiagnosis.ToString()));

                    lblRespostaSugerida.Text = (DoencaDAO.BuscarDoenca(idDiagnosis)).nome;
                }
                else
                {
                    Page.Controls.Add(new LiteralControl("<h1>Erro, Você não deveria estar aqui"));
                }
            }

        }

        protected void btnSim_OnClick(object sender, EventArgs e)
        {
            pnOutraSugestao.Visible = false;
            CasoPacienteDAO.AtualizarDoenca(getCasoPaciente(),getIdDiagnosis());
            Response.Redirect("../CasosPaciente/CasosPaciente.aspx");
        }

        protected void btnNao_OnClick(object sender, EventArgs e)
        {
            try
            {               

                pnOutraSugestao.Visible = true;
                List<Doenca> doencas = DoencaDAO.BuscarDoencasDoProntuarioPorCaso(getCasoPaciente());
                if (doencas != null)
                {

                    foreach (Doenca item in doencas)
                    {
                        lblDoencasCadastradas.Items.Add(new ListItem(item.nome, item.idDoenca.ToString()));
                    }
                }
                else
                {
                    throw new ArgumentNullException();
                }

            }
            catch (Exception)
            {
                throw;
            }

        }

        private int getCasoPaciente()
        {
            try
            {
                HttpCookie cookieCasoPaciente = Request.Cookies.Get("casoPaciente");
                int casoPaciente = 0;
                if (cookieCasoPaciente != null)
                    casoPaciente = Convert.ToInt32(cookieCasoPaciente.Value);
                else
                    throw new ArgumentNullException();
                return casoPaciente;
            }
            catch (Exception)
            {
                throw;
            }

        }

        private int getIdDiagnosis()
        {
            try
            {
                HttpCookie cookieIdDiagnosis = Request.Cookies.Get("idDiagnosis");
                int idDiagnosis = 0;
                if (cookieIdDiagnosis != null)
                    idDiagnosis = Convert.ToInt32(cookieIdDiagnosis.Value);
                else
                    throw new ArgumentNullException();
                return idDiagnosis;
            }
            catch (Exception)
            {
                throw;
            }

        }

        protected void btnDoencaCadastrada_OnClick(object sender, EventArgs e)
        {
            CasoPacienteDAO.AtualizarDoenca(getCasoPaciente(), Convert.ToInt32(lblDoencasCadastradas.SelectedItem.Value));
        }

        protected void btnCadastrarNovoDiagnostico_OnClick(object sender, EventArgs e)
        {
            if (txtNovoDiagnostico.Text != string.Empty)
            {
                CasoPaciente cp = CasoPacienteDAO.BuscarCasoPaciente(getCasoPaciente());
                Doenca doenca = new Doenca();
                doenca.nome = txtNovoDiagnostico.Text;
                doenca.idProntuario = cp.idProntuario;
                doenca.descricao = " ";

                DoencaDAO.CadastrarDoenca(doenca);
                CasoPacienteDAO.AtualizarDoenca(getCasoPaciente());

                
            }                
        }
    }
}